Hash Table Design
Choose a bucket array and entry representation.
Implement deterministic hashing and bucket-index calculation.
Use separate chaining or open addressing for collisions.
Implement get, put, contains, and remove.
Use a load-factor threshold to trigger resizing.
Rehash all entries after resizing.
Ensure key equality and hashing are consistent.
Define null-key behavior and duplicate-key semantics.
Consider iteration, memory overhead, concurrency, and security requirements.
Test collision-heavy, resize-heavy, empty, duplicate, and adversarial cases.